package com.gs.netty.client;

import com.gs.netty.support.properties.BaseNettyConfig;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

import java.util.*;

@Data
@ConfigurationProperties(prefix ="websocket.client.config")
public class NettyClientConfig extends BaseNettyConfig {

    /**
     * 连接超时时间
     */
    private int connectTimeoutMillis= 3000;
    /**
     * 发生请求超时时间
     */
    private long sendTimeout= 30000;
    /**
     * 创建连接最多时间
     */
    private int lockTimeoutMillis= 3000;
    /**
     * 最大重连时间间隔，单位（秒）
     */
    private int maxReconnectIntervalTime= 60;

    /**
     * 是否懒初始化 Channel
     */
    private boolean lazyChannel = true;

    /**
     * 客户端是否绑定 Channel，绑定了就不能用使用负载均衡了
     */
    private boolean stickyChannel = false;
    /**
     * 重试失败发送次数
     */
    protected int retryTimesWhenSendFailed =3;

    protected int permitsAsync =300;

    /**
     * 握手超时时间
     */
    protected long handshakeTimeoutMillis = 10000L;

    /**
     * webSocket 路径
     */
    private List<String> webSocketPaths;

}
